import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
	state: {
		token:{},
		userInfo:null,
		hasLogin: false, //是否登录
		excludeRoutes: []
	},
	mutations: {
		login(state, obj) {
			state.hasLogin = true;
			if(obj){
				// state.token.provider =obj.provider ? obj.provider : null;//登录服务提供商名字,用于APP
				// state.token.tokename =obj.tokename;
				state.token.api_token =obj.api_token;
				uni.setStorageSync("token",state.token);				
			}
		},
		loginOut(state) {
			state.hasLogin = false;
			state.token = {};
			state.userInfo = null
			// uni.removeStorageSync("userInfo");
			// uni.removeStorageSync("token");	
			// let user = uni.getStorageSync("myUser") ? uni.getStorageSync("myUser") : ''; //记住用户名密码
			uni.clearStorageSync();//清除本地缓存信息
			// if(user){
			// 	uni.setStorageSync("myUser",user);
			// }
		},
		setUserInfo(state, userInfo) {
			state.userInfo = userInfo;
			uni.setStorageSync("userInfo",userInfo);
		}
	},
	actions: {
		updateWX({ state, commit }){
			// 微信用户版本更新
			if (uni.canIUse("getUpdateManager")) { // 判断更新接口是否可用
				let updateManager = uni.getUpdateManager();
				updateManager.onCheckForUpdate((res) => {					
				  // 请求完新版本信息的回调
				  console.log(res.hasUpdate);
				  if(!res.hasUpdate){
					  uni.showModal({
						title: '更新提示',
						content: '已是最新版，无需更新！',
						showCancel: false
					  })
				  }
				  commit('setUpdate',res.hasUpdate);
				})
				updateManager.onUpdateReady(() => {
				  uni.showModal({
					title: '更新提示',
					content: '新版本已经准备好，是否重启应用？',
					success: (res) => {
					  if (res.confirm) {
						// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
						updateManager.applyUpdate();
					  } else if (res.cancel) {
						return false;
					  }
					}
				  })
				})
				updateManager.onUpdateFailed(() => {
				  // 新的版本下载失败
				  uni.hideLoading();
				  uni.showModal({
					title: '升级失败',
					content: '新版本下载失败，请检查网络！',
					showCancel: false
				  });
				});
			}				
		}
	}
})

export default store
